在 Ruby 中,代码不仅仅是一段静态脚本——它是一个 动态系统。 内省 是一种让对象具备‘自我认知’能力的超能力,将它们从黑箱转变为可搜索的功能地图。即使是 即时值 像整数这样的即时值,也可以在运行时被查询其继承关系和功能特性。
1. 活动接口
通过调用 obj.methods(regular=true),我们可以获取一个对象完整的功能词汇表。一个简单的范围对象(r = 1..10)揭示了惊人的 68 个不同的方法,这反映了它从 Object 以及 Enumerable 混入模块中继承而来的丰富特性。
2. 动态发现
方法 respond_to? 在运行时充当守门人,实现 鸭子类型。与其问‘你是谁?’,不如问‘你能做这个吗?’。这种灵活性使程序能够根据实际能力进行适应,例如检查一个字符串是否响应赋值类符号(=)或一个数值是否支持特定的 层级查询。
3. 元文档桥梁
像 RDoc 这样的工具利用这些特性自动生成 字母顺序列表布局 和方法签名块图。通过查询 模块常量 以及 实例变量,开发者可以以编程方式遍历整个命名空间结构,弥合源文件与实际执行之间的差距。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>